package com.suoluo.zenadmin.service;

import java.util.List;

import com.suoluo.zenadmin.vo.BaseInfoMetadata;
import com.suoluo.zenadmin.vo.BaseInfoVO;
import com.suoluo.zenadmin.vo.ImageMetadata;
import com.suoluo.zenadmin.vo.ImageVO;

public interface InfoService {

	/**
	 * 保存资讯基础信息，包括资讯的文本，资讯的图片
	 * @param baseInfo
	 */
	public void saveBaseInfo(BaseInfoMetadata baseInfo);
	
	/**
	 * 保存资讯的图片信息
	 * @param image
	 */
	public void saveImage(ImageMetadata image);
	
	/**
	 * 保存图片信息到数据库
	 * @param infoId
	 * @param imageKeys
	 * @return
	 */
	public List<Integer> saveImage(int infoId,List<String> imageKeys);
	
	/**
	 * 更新图片信息
	 * @param image
	 */
	public void updateImage(ImageMetadata image);
	
	/**
	 * 修改资讯的中文名，英文名，内容
	 * @param baseInfo
	 */
	public void updateBaseInfo(BaseInfoMetadata baseInfo);
	
	/**
	 * 删除资讯的基础信息，和基础信息的所关联的图片
	 * @param baseInfo
	 */
	public void deleteBaseInfo(BaseInfoMetadata baseInfo);
	
	/**
	 * 查询资讯的图片
	 * @param infoId
	 * @return
	 */
	public List<ImageVO> findImages(int infoId);
	
	/**
	 * 获取基础信息
	 * @param dataId
	 * @param infoType
	 * @return
	 */
	public List<BaseInfoVO> findBaseInfos(int dataId,int infoType);
	
	public List<BaseInfoVO> findDefaultBaseInfos(int [] dataIds ,int infoType);
	/**
	 * 查询单张图片信息
	 * @param imageId
	 * @return
	 */
	public ImageVO findImageById(int imageId);
	
	/**
	 * 获取基础信息
	 * @param infos
	 * @return
	 */
	public List<BaseInfoVO> findDefaultBaseInfos(List<BaseInfoVO> infos);
	
	
	public void deleteImage(ImageVO image);
	/**
	 * 查询单张图片和图片的描述信息
	 * @param infoId
	 * @return
	 */
	public List<BaseInfoVO> findBaseInfoByInfoId(int infoId);
	/**
	 * 删除基础信息
	 */
	public void deleteBaseInfoById(int infoId);
	/**
	 * 查询基础信息
	 * @param infoId
	 * @return
	 */
	public BaseInfoVO findBaseInfoById(int infoId);
	
	/**
	 * 查询资讯的图片
	 * @param infoIds
	 * @return
	 */
	public List<ImageVO> findImages(int [] infoIds);
	
	/**
	 * 酒店简化版获取非默认属性的基础信息
	 * @param dataId
	 * @param infoType
	 * @return
	 */
	public List<BaseInfoVO> findBaseInfosNoDefault(int dataId,int infoType);
}
